@echo off
title 酒店管理系统启动器

echo ========================================
echo 酒店管理系统快速启动脚本
echo ========================================
echo.

echo 正在检查环境...
java -version >nul 2>&1
if %errorlevel% neq 0 (
    echo [错误] 未找到Java环境，请安装JDK 11+
    pause
    exit /b 1
)

mvn -version >nul 2>&1
if %errorlevel% neq 0 (
    echo [错误] 未找到Maven环境，请安装Maven 3.6+
    pause
    exit /b 1
)

if not exist pom.xml (
    echo [错误] 未找到pom.xml文件，请确保在项目根目录运行
    pause
    exit /b 1
)

echo [信息] 环境检查通过
echo.

echo 选择启动模式：
echo 1. 开发模式 (dev) - 不连接数据库
echo 2. 测试模式 (test) - 使用H2内存数据库
echo 3. 生产模式 (prod) - 连接MySQL数据库
echo 4. 编译项目
echo 5. 运行测试
echo 6. 清理项目
echo.

set /p choice=请选择 (1-6): 

if "%choice%"=="1" goto dev
if "%choice%"=="2" goto test
if "%choice%"=="3" goto prod
if "%choice%"=="4" goto compile
if "%choice%"=="5" goto runtest
if "%choice%"=="6" goto clean
echo 无效选择，默认使用开发模式
goto dev

:dev
echo.
echo [信息] 启动开发模式...
echo [提示] 开发模式不需要数据库连接
echo [提示] 访问地址: http://localhost:8080/api/health
echo.
mvn spring-boot:run -Dspring-boot.run.profiles=dev
goto end

:test
echo.
echo [信息] 启动测试模式...
echo [提示] 测试模式使用H2内存数据库
echo [提示] 访问地址: http://localhost:8080/api/health
echo [提示] H2控制台: http://localhost:8080/api/h2-console
echo.
mvn spring-boot:run -Dspring-boot.run.profiles=test
goto end

:prod
echo.
echo [警告] 生产模式需要MySQL数据库连接
echo [提示] 请确保MySQL服务已启动并执行了初始化脚本
echo [提示] 访问地址: http://localhost:8080/api/health
echo.
set /p confirm=确认启动生产模式? (y/n): 
if /i "%confirm%"=="y" (
    mvn spring-boot:run -Dspring-boot.run.profiles=prod
) else (
    echo 已取消启动
)
goto end

:compile
echo.
echo [信息] 编译项目...
mvn clean compile
if %errorlevel% == 0 (
    echo [成功] 项目编译成功
) else (
    echo [失败] 项目编译失败
)
goto end

:runtest
echo.
echo [信息] 运行测试...
mvn test
if %errorlevel% == 0 (
    echo [成功] 测试运行成功
) else (
    echo [失败] 测试运行失败
)
goto end

:clean
echo.
echo [信息] 清理项目...
mvn clean
if %errorlevel% == 0 (
    echo [成功] 项目清理成功
) else (
    echo [失败] 项目清理失败
)
goto end

:end
echo.
echo ========================================
echo 操作完成
echo ========================================
echo.
echo 常用命令：
echo - 健康检查: curl http://localhost:8080/api/health
echo - 系统信息: curl http://localhost:8080/api/health/info
echo - 监控面板: http://localhost:8080/api/actuator
echo.
pause
